package com.xtkj.superclub_friendscircle.service;

import com.xtkj.superclub_entity.entity.friendsCircle.DTO.LikedCountDTO;
import com.xtkj.superclub_entity.entity.friendsCircle.UserLike;

import java.util.List;

/**
 * 项目名称：superclub
 * 类 名 称：ILikes2RedisService
 * 类 描 述：TODO
 * 创建时间：2020/1/3 13:29
 * 创 建 人：xiezhiyan
 */
public interface ILikes2RedisService {

    /**
     * 点赞。状态为1
     * @param likedUserId
     * @param likedPostId
     */
    void saveLiked2Redis(String likedUserId, String likedPostId);

    /**
     * 取消点赞。将状态改变为0
     * @param likedUserId
     * @param shareId
     */
    void unlikeFromRedis(String likedUserId, String shareId);

    /**
     * 从Redis中删除一条点赞数据
     * @param likedUserId
     * @param shareId
     */
    void deleteLikedFromRedis(String likedUserId, String shareId);

    /**
     * 该分享的点赞数加1
     * @param shareId
     */
    void incrementLikedCount(String shareId);

    /**
     * 该分享的点赞数减1
     * @param shareId
     */
    void decrementLikedCount(String shareId);

    /**
     * 获取Redis中存储的所有点赞数据
     * @return
     */
    List<UserLike> getLikedDataFromRedis();

    /**
     * 获取Redis中存储的所有点赞数量
     * @return
     */
    List<LikedCountDTO> getLikedCountFromRedis();
}
